import config from "@/config";
// const baseUrl = 'http://192.168.1.12:8083'
// const baseUrl = 'http://192.168.1.35:8083'
// const baseUrl = 'http://192.168.1.29:8083'
const baseURL = config.apiHost
const timeout = 5000

// 封装api请求
// 获取Token
const getToken = () => {
	var token = uni.getStorageSync('token');
	if (token) {
		return token
	} else {
		uni.reLaunch({
			url: '/pages/login/login'
		})
	}
}
// 封装api请求

const request = (params) => {
	// uni.showLoading({ // 显示加载中  微信 就把 uni 改成 wx
	// 	title: '加载中'
	// })
	// 我们搭配 Promise 进一步封装
	return new Promise((resolve, reject) => {
		let token = getToken()
		// Promise 一种异步编程的解决方案 支持链式调用 可以将异步操作队列化 
		// Promise 状态 Pending --> Fulfilled 或者 Pending --> Rejected，Fulfilled 和 Rejected 是最终状态，不可以进行第二次修改；
		uni.request({
			// 对于 POST 方法且 header['content-type'] 为 application/x-www-form-urlencoded 的数据，会将数据转换成 query string
			header: {
				'content-type': 'application/json', // 默认值
				'Authorization': 'Bearer' + ' ' + token, 
			},
			url: baseURL + params.url, // 拼接 params 传过来的 url
			method: params.method || 'GET', //  传过来的 请求方式 默认 get
			data: params.data, // 拼接 params 传过来的 参数
			dataType: 'json',
			success: (res) => { // 成功的回调函数
				resolve(res.data) // 成功了  resolve 返回 就可以 .then 调用了
			},
			fail: reject, // 失败 .catch可以捕获到
			complete() { // 接口调用结束的回调函数（调用成功、失败都会执行）	
				uni.hideLoading()
			},

		})
	})
}

// 导出请求
export default request;